package model

// DiskInfo 磁盘基本信息
type DiskInfo struct {
	Name       string  `json:"name"`        // 磁盘名称
	Total      string  `json:"total"`       // 总空间（格式化：B、KB、MB、GB、TB）
	Used       string  `json:"used"`        // 已用空间（格式化：B、KB、MB、GB、TB）
	Free       string  `json:"free"`        // 可用空间（格式化：B、KB、MB、GB、TB）
	UsageRate  float64 `json:"usage_rate"`  // 使用率 (0-100)
	MountPoint string  `json:"mount_point"` // 挂载点
	FileSystem string  `json:"file_system"` // 文件系统类型
}

// DiskIOStat 磁盘IO统计信息
type DiskIOStat struct {
	Name           string `json:"name"`             // 磁盘名称
	ReadCount      string `json:"read_count"`       // 读取总数（格式化：次、千次、百万次）
	WriteCount     string `json:"write_count"`      // 写入总数（格式化：次、千次、百万次）
	ReadBytes      string `json:"read_bytes"`       // 读取字节数（格式化：B、KB、MB、GB）
	WriteBytes     string `json:"write_bytes"`      // 写入字节数（格式化：B、KB、MB、GB）
	IOPSInProgress uint64 `json:"iops_in_progress"` // 正在进行的IOPS
	IOTime         string `json:"io_time"`          // I/O时间（格式化：ms、s、m）
	WeightedIO     string `json:"weighted_io"`      // 加权I/O时间（格式化：ms、s、m）
}

// RealTimeDiskIOStat 实时磁盘IO统计信息（包含IOPS和延迟）
type RealTimeDiskIOStat struct {
	Name         string `json:"name"`          // 磁盘挂载点名称
	ReadSpeed    string `json:"read_speed"`    // 读取速度（格式化：MB/s 或 KB/s）
	WriteSpeed   string `json:"write_speed"`   // 写入速度（格式化：MB/s 或 KB/s）
	ReadIOPS     uint64 `json:"read_iops"`     // 读取IOPS（每秒读取次数）
	WriteIOPS    uint64 `json:"write_iops"`    // 写入IOPS（每秒写入次数）
	ReadLatency  string `json:"read_latency"`  // 读取延迟（格式化：ms）
	WriteLatency string `json:"write_latency"` // 写入延迟（格式化：ms）
	ReadCount    uint64 `json:"read_count"`    // 累计读取次数
	WriteCount   uint64 `json:"write_count"`   // 累计写入次数
}

// RealTimeDiskIOData 实时磁盘IO数据
type RealTimeDiskIOData struct {
	Timestamp   int64                `json:"timestamp"`     // 时间戳
	DiskIOStats []RealTimeDiskIOStat `json:"disk_io_stats"` // 磁盘IO统计（仅性能相关数据）
}
